home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
326-350
/
disk_350
/
trackutils
/
tcopy.doc
< prev
next >
Wrap
Text File
|
1992-05-06
|
11KB
|
252 lines
TCOPY -- copies tracks from one disk to another
(C) Copyright Eddy Carroll 1990. Freely distributable.
INTRODUCTION
One of the nicer additions that came with Workbench 1.3 was RAD:, the
recoverable ram disk. A handy feature of RAD: is that it can be made to
look like a floppy disk, and you can then copy an entire disk into it
in one go -- much quicker than copying files in seperately.
Unfortunately, you need to have an 880K RAD: to do this; since I only
have a 2 Meg Amiga, I can't really afford to lose that much memory.
Thus, Tcopy was born.
Tcopy is essentially a DiskCopy command which will copy a specified
range of tracks (actually cylinders, but most people seem to prefer to
call them tracks) from one disk to another. Using Tcopy, you can store
a complete "dump" of RAD: on your startup disk, and then copy it back
into RAD: very rapidly. For example, it takes about 15 seconds to load
up my 275K RAD (as opposed to around 45 seconds when the files were
being copied in one at a time). This is a loading speed of around
18K/second. So much for the Amiga's "slow" floppy drives :-)
To help speed up your startup times even more, Tcopy can automatically
mount RAD: (for all you purists who don't think this sort of thing
belongs in a track copier, tcopy can be readily compiled without the
RAD: handling). If you have just done a reset and RAD: was already in
memory, then Tcopy won't bother reloading it unless you specifically
ask it to.
USAGE
The command template for Tcopy looks like this:
tcopy <options> <from> <to> <start> <end> <newstart>
The <options> are all to do with RAD: and if you don't specify any
of them, Tcopy won't try to mount it. This allows you to use Tcopy for
copying tracks between two normal devices (such as DF0: and DF1:)
without having RAD: confusing things. I'll discuss the valid options
in a little while.
<from> and <to> give the source and destination devices respectively
that Tcopy is to use. These devices can be different sizes, but they
must both have the same track size (i.e. same number of blocks/track
and number of surfaces).
<start> specifies the track to start copying from, <end> specifies
the track to copy up to (and including), and <newstart> specifies
the track to start copying to on the destination device.
For example, supposing you wanted to use Tcopy to copy a disk from
drive 0 to drive 1. You could type
tcopy DF0: DF1: 0 79 0
meaning "copy tracks 0 to 79 on DF0: to track 0 upwards on DF1:".
It should be pointed out however that Tcopy doesn't make a particularly
good disk copier, because:
- It requires that the destination disk already be formatted
- It doesn't verify the data was written properly
- It is about twice as slow as DiskCopy when writing to floppy
- It doesn't update the root block on the destination disk, so
AmigaDOS will see two disks that look identical, and will go
a little bit crazy trying to sort it out.
Hence, it's probably best to keep Tcopy for loading RAD:, and for
copying the odd single track around when needed.
OPTIONS
Now onto the options which are supported for mounting RAD: Any
or all of these options may appear; options which are ommitted get
the default values indicated in brackets. Remember that Tcopy will only
mount RAD: automatically if at least one of the options is specified.
Also, you should have ramdrive.device in your DEVS: directory.
-v<name> (RAMB0)
Sets the volume name of the mounted device to <name>. This is the
name that appears under the disk icon on Workbench.
-n<name> (RAD)
Sets the AmigaDOS device name of the mounted device to <name>. This
is the "real" name, which cannot be altered once set.
-e<txt>
Outputs <txt> to the screen. This is useful if you want to display
a message while the copying takes place. If the message contains
any spaces, you will need to surround the entire option with
quotation marks. For example, you might use something like this:
"-eNow copying startup disk to RAD:"
-a
Normally, Tcopy will only actually do the diskcopy into RAD: if it
finds RAD: has no files after it has been mounted (i.e. it is a
cold startup, rather than a reset). The rest of the time, it will
mount RAD: and then quit immediately.
You may occasionally want to override this behaviour. Specifying -a
will tell Tcopy to always copy the disk into RAD: even when it
doesn't think its necessary. This could be useful if you have
several different startup disks, each containing a different set
of files to load into RAD: (one for programming, one for TeX etc.)
-t# (10)
Sets the number of tracks that RAD: will have, and therefore the
amount of memory it will take up. Each track occupies about 11K
of memory. In general, you will want to customise this to suit
your system rather than leaving it at the default.
-p# (-1)
Sets the boot priority for RAD:. This is only useful to Kikstart 1.3
users who can boot from RAD: (you 1.2 users don't know what you're
missing!) The default of -1 means that the Amiga will first try to
boot from a floppy disk in drive 0 and if that fails, will then boot
from RAD. If you set this value to 127, the Amiga will always
boot from RAD: regardless of what's in drive 0.
You are unlikely to ever need to use the following options, but they
are included for the adventurous to play with. They give you control
over several of the fields that normally appear in the mountlist.
Don't mess with them unless you know what you are doing!
-d<name> (ramdrive.device)
Sets the name of the underlying exec device associated with the
AmigaDos device.
-f# (0)
Sets the flags to specify when calling OpenDevice().
-m# (1)
Specifies the type of memory to use; the default is Public Memory
which is basically any memory that happens to be free.
CREATING A STARTUP DISK
So, now that you know what Tcopy can do, lets get down to essentials.
Namely, how to put together a disk that boots up as quickly as possible.
My system consists of an A1000 with 1.3 Kikstart, 2 Megs of RAM, and
a C Ltd. hard drive (no autoboot). My RAD: is 275K, and contains
a fairly stripped down Workbench -- essentially just enough to
get the hard drive up and running, and to install my favourite
resident utilities (Dmouse, Conman, BlitzFonts and Snap).
My startup disk looks like this:
Directory of HD_Boot:
c
devs
l
libs
s
Tracks1-25
Directory of HD_Boot:c
RemRad
Tcopy
Directory of HD_Boot:devs
ramdrive.device
system-configuration
Directory of HD_Boot:s
startup-sequence
If you are paying attention, you may have noticed the file Tracks55-79
above. This is a special file created by the Tfile program which
accompanies Tcopy, and to AmigaDos, it looks as if it occupies
tracks 55 to 79 of the disk. This means that I can store my copy of
RAD: on these tracks, without having to worry about AmigaDos trying
to overwrite it if I go to save a new file on the disk.
My startup-sequence looks like this:
c:tcopy -t25 -vRAD "-eBooting up 275K RAD..." df0: rad: 1 25 0
rad:c/cd rad:
rad:c/defdisk rad:
rad:c/execute rad:s/startup-sequence
The first command is the only one that gets loaded in from disk. It
mounts a RAD: with 25 tracks (275K), changes the volume name to RAD:
instead of RAMB0: (which I don't like at all), prints a brief message
and then copies tracks 1 to 25 of the startup disk to RAD:. I have
arranged that RAD: contains enough commands to allow the bootup to
be carried on from there.
The next command changes the current directory to RAD: (mainly because
the execute command lower down will create a temporary file in the
current disk, and I want it to do this in RAD: instead of on my
write-protected boot disk!) After this, DefDisk does all the necessary
assigns to make RAD: look like the bootup disk (so that I can remove
the real bootup disk for good, and AmigaDos won't ever ask me to
insert it again). DefDisk is a really nice little P.D. program which is
well worth hunting down.
The final step is to execute the real startup-sequence located in RAD:.
This is the same startup-sequence that will get executed when I reset
in future (since I am booting from RAD:).
If I accidentally reset with my boot disk in DF0:, no harm is done;
Tcopy will see that RAD: is already loaded and exit immediately,
If I had Kikstart 1.2 instead of 1.3, the only change I would have to
make would be booting from my startup disk each time I reset rather
than from RAD:. This would still be very fast, since Tcopy will only
copy the disk into RAD: the first time I bootup.
I actually created the startup disk as follows. First of all, I
mounted RAD: manually, and filled it with all the goodies I wanted.
Then I formatted a blank disk, and ran Tfile on it to create the
dummy file Tracks1-25 so that those tracks would remain free to store
the copy of RAD: on. The command I used was:
tfile DF0:Tracks1-25 1 25
Then I copied RAD: to the disk with Tcopy:
tcopy RAD: DF0: 0 24 1
Finally, I created the minimal bootdisk listed earlier by copying over
all the files and directories needed.
The result? It takes just under 25 seconds from a cold reset to load
mount and fill the 275K RAD:, and pass control to its startup-sequence.
While it's not as nice as booting off a hard drive, it makes booting
from floppy a great deal more bearable!
RELEASE HISTORY
V1.0
First release, January 1990. No known bugs, but this will
probably change in the future...
AUTHOR
Please direct any praise, criticism, general suggestions or
large sums of money to:
Eddy Carroll
ecarroll@vax1.tcd.ie (Trinity College, Dublin, Ireland)